package com.xiaoshuidi.cloud.framework.hangxin.core.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@Data
public class InvoicingItemDTO {
    /**
     * 发票行性质 0 正常行 1 折扣行 2 被折扣行
     **/
    @Schema(description = "发票行性质 0 正常行 1 折扣行 2 被折扣行", requiredMode = Schema.RequiredMode.REQUIRED)
    private String FPHXZ;
    /**
     * 商品名称
     **/
    @Schema(description = "商品名称 ", requiredMode = Schema.RequiredMode.REQUIRED)
    private String XMMC;
    /**
     * 规格型号
     **/
    @Schema(description = "规格型号 ")
    private String GGXH;
    /**
     * 计量单位
     **/
    @Schema(description = "计量单位 ")
    private String DW;
    /**
     * 项目数量 小数点后 8 位，单价和数量必须 同时为空或者同时不为空
     **/
    @Schema(description = "项目数量 小数点后 8 位，单价和数量必须 同时为空或者同时不为空")
    private String XMSL;
    /**
     * 项目单价 小数点后 8 位，不含税。单价和 数量必须同时为空或者同时不为空
     **/
    @Schema(description = "项目单价 小数点后 8 位，不含税。单价和 数量必须同时为空或者同时不为空")
    private String XMDJ;
    /**
     * 项目不含税金额 不含税，单位：元(2 位小数)
     **/
    @Schema(description = "项目不含税金额 不含税，单位：元(2 位小数)", requiredMode = Schema.RequiredMode.REQUIRED)
    private String XMJE;
    /**
     * 税率 2 位小数，例 1%为 0.019.SE 税额 DOUBLE 20 是 单位：元(2 位小数)
     **/
    @Schema(description = "税率 2 位小数，例 1%为 0.019.SE 税额 DOUBLE 20 是 单位：元(2 位小数)", requiredMode = Schema.RequiredMode.REQUIRED)
    private String SL;
    /**
     * 税额 单位：元(2 位小数)
     */
    @Schema(description = "税额 单位：元(2 位小数)", requiredMode = Schema.RequiredMode.REQUIRED)
    private String SE;
    /**
     * 税收分类编码 必填，按照商品实际对应的税收 分类编码传。对应下面附件中的BM 字段
     **/
    @Schema(description = "税收分类编码 必填，按照商品实际对应的税收 分类编码传。对应下面附件中的BM 字段", requiredMode = Schema.RequiredMode.REQUIRED)
    private String SPBM;
    /**
     * 优惠政策标识 必填此商品是否享受税收优惠政策，0：不 享受，1：享受
     **/
    @Schema(description = "优惠政策标识 必填此商品是否享受税收优惠政策，0：不 享受，1：享受", requiredMode = Schema.RequiredMode.REQUIRED)
    private String YHZCBS;
    /**
     * 增值税特殊管理 当 YHZCBS 是 1 时必填 传的可选值根据所选编码来判断，比 如简易征收、免税 商品不享受优惠政策，该值应为空。已知的优惠政策包括：不征税，免税，先征后退，100%先征后退，50%先征后 退，简易征收，即征即退 30%，即征 即退 50%，即征即退 70%，即征即退100%，超税负 3%即征即退，稀土产品，超税负 8%即征即退，按 5%简易征收减按 1.5%计征，按 5%简易征收，按 3%简易征收，超税负 12%即征即退
     **/
    @Schema(description = "增值税特殊管理 当 YHZCBS 是 1 时必填 传的可选值根据所选编码来判断，比 如简易征收、免税 商品不享受优惠政策，该值应为空。已知的优惠政策包括：不征税，免税，先征后退，100%先征后退，50%先征后 退，简易征收，即征即退 30%，即征 即退 50%，即征即退 70%，即征即退100%，超税负 3%即征即退，稀土产品，超税负 8%即征即退，按 5%简易征收减按 1.5%计征，按 5%简易征收，按 3%简易征收，超税负 12%即征即退")
    private String ZZSTSGL;
    /**
     * 零税率标识 零税率标识（空:非零税率,0:出口零 税,1:免税,2:不征税,3:普通零税率）商品行税率不为 0，传“”；商品行税率为 0，优惠政策为“出口 零税”，传“0”；商品行税率为 0，优惠政策为“免税”，传“1”；商品行税率为 0，优惠政策为“不征 税”，传“2”；商品行税率为 0，优惠政策为“”，传“3”，表示普通的零税率；
     **/
    @Schema(description = "零税率标识 零税率标识（空:非零税率,0:出口零 税,1:免税,2:不征税,3:普通零税率）商品行税率不为 0，传“”；商品行税率为 0，优惠政策为“出口 零税”，传“0”；商品行税率为 0，优惠政策为“免税”，传“1”；商品行税率为 0，优惠政策为“不征 税”，传“2”；商品行税率为 0，优惠政策为“”，传“3”，表示普通的零税率；")
    private String LSLBS;
    /**
     * 扣除额 单位：元（2 位小数）不为空则按照差额征税发票处理。差额征税发票开具时，KCE 才需要设置对应的扣除额，差额征税的红票，只允许一个商 品行；差额征税的蓝票，最多只允许两 个商品行，即 1 个被折扣行和 1个折扣行，且扣除额只需要在正 常行或被折扣行上进行设置。
     **/
    @Schema(description = "扣除额 单位：元（2 位小数）不为空则按照差额征税发票处理。差额征税发票开具时，KCE 才需要设置对应的扣除额，差额征税的红票，只允许一个商 品行；差额征税的蓝票，最多只允许两 个商品行，即 1 个被折扣行和 1个折扣行，且扣除额只需要在正 常行或被折扣行上进行设置。")
    private String KCE;
}
